package com.dcms.util;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class StringUtil {


	/**
	 * 首尾添加%
	 * 
	 * @param str
	 * @return
	 */
	public static String appendPerCent(String str) {
		return "%" + str + "%";
	}

	/**
	 * 转码
	 * @param str
	 * @return
	 */
	public static String encodeStr(String str) {
		try {
			return new String(str.getBytes("ISO-8859-1"), "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return null;
		}
	}
	

	public static String RegexString(String targetStr, String patternStr) {  
        Pattern pattern = Pattern.compile(patternStr);
        Matcher matcher = pattern.matcher(targetStr);
        
        String str="";
        for(int i=1;i<=matcher.groupCount();i++){
        	str += matcher.group(i);
    	}  
        return str;
    }

    /**
     * @author: 武佳伟丶
     * @description: 判断字符串是否为空
     * @date: 18:55 2018/2/18 0018
     * @param: [str]
     * @return: boolean
     */
    public static boolean isNotEmpty(String str){
		boolean bool = false;
		if (str != null && !"".equals(str)){
			bool = true;
		}
		return bool;
	}

	/**
	 * @author: 武佳伟丶
	 * @description: MD5加密
	 * @date: 17:52 2018/4/5 0005
	 * @param: [str]
	 * @return: java.lang.String
	 */
	public static String getMD5(String str) {
		try {
			// 生成一个MD5加密计算摘要
			MessageDigest md = MessageDigest.getInstance("MD5");
			// 计算md5函数
			md.update(str.getBytes());
			// digest()最后确定返回md5 hash值，返回值为8为字符串。因为md5 hash值是16位的hex值，实际上就是8位的字符
			// BigInteger函数则将8位的字符串转换成16位hex值，用字符串来表示；得到字符串形式的hash值
			return new BigInteger(1, md.digest()).toString(16);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	public static void main(String[] args) {
		System.out.print(getMD5("admin"));
	}
	
}
